﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using DTO;

namespace DAL
{
    public class DON_HANGDAL : KetNoiDuLieu
    {
        #region Lấy toàn bộ dữ liệu bảng đơn hàng
        public void DonHang_ThemDuLieu(DON_HANG dh)
        {
            SqlCommand cmd = new SqlCommand("sp_donhang_Insert", LayKetNoi());
            cmd.CommandType = CommandType.StoredProcedure;
            //cmd.Parameters.AddWithValue("ma_dh", dh.MaDonHang);
            cmd.Parameters.AddWithValue("ma_ad", dh.MaAD);
            cmd.Parameters.AddWithValue("ma_kh", dh.MaKhachHang);
            cmd.Parameters.AddWithValue("ngay_lap", dh.NgayLap);
            cmd.Parameters.AddWithValue("tong_tien", dh.TongTien);
            cmd.Parameters.AddWithValue("ngay_giao", dh.NgayGiao);
            cmd.Parameters.AddWithValue("trang_thai", dh.TrangThai);
            cmd.ExecuteNonQuery();
        }
        #endregion
        #region Sửa dữ liệu của bảng đơn hàng
        public void DonHang_SuaDulieu(DON_HANG dh)
        {
            SqlCommand cmd = new SqlCommand("sp_doanhnghiep_Update", LayKetNoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("ma_dh", dh.MaAD);
            cmd.Parameters.AddWithValue("ma_ad", dh.MaDonHang);
            cmd.Parameters.AddWithValue("ma_kh", dh.MaKhachHang);
            cmd.Parameters.AddWithValue("ngay_lap", dh.NgayLap);
            cmd.Parameters.AddWithValue("tong_tien", dh.TongTien);
            cmd.Parameters.AddWithValue("ngay_giao", dh.NgayGiao);
            cmd.Parameters.AddWithValue("trang_thai", dh.TrangThai);
            cmd.ExecuteNonQuery();
        }
        #endregion        
        #region Xỏa dữ liệu bảng đơn hàng
        public void DonHang_XoaDuLieu(int id)
        {
            SqlCommand cmd = new SqlCommand("sp_donhang_Delete", LayKetNoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("ma_dh", id);
            cmd.ExecuteNonQuery();
        }
        #endregion
        #region Hiển Thị Dữ Liệu
        public DonHangCollection Get(string Where, int PageIndex, int PageSize, string OrderBy, string OrderDirection, out int TotalRecords)
        {

            SqlCommand cm = new SqlCommand("sp_donhang_GET", LayKetNoi());
            cm.CommandType = CommandType.StoredProcedure;
            cm.Parameters.AddWithValue("@Where", Where);
            cm.Parameters.AddWithValue("@PageIndex", PageIndex);
            cm.Parameters.AddWithValue("@PageSize", PageSize);
            cm.Parameters.AddWithValue("@OrderBy", OrderBy);
            cm.Parameters.AddWithValue("@OrderDirection", OrderDirection);
            SqlParameter param = new SqlParameter("@TotalRecords", DbType.Int32);
            param.Direction = ParameterDirection.Output;
            cm.Parameters.Add(param);
            SqlDataAdapter da = new SqlDataAdapter(cm);
            DataSet ds = new DataSet();
            da.Fill(ds);
            DonHangCollection donhangcollection = new DonHangCollection();
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DON_HANG donhang = new DON_HANG();
                donhang.MaDonHang = int.Parse(ds.Tables[0].Rows[i]["MA_DH"].ToString());
                donhang.MaAD = int.Parse(ds.Tables[0].Rows[i]["MA_AD"].ToString());
                donhang.MaKhachHang = int.Parse(ds.Tables[0].Rows[i]["MA_KH"].ToString());
                donhang.NgayLap = ds.Tables[0].Rows[i]["NGAY_LAP"].ToString();
                donhang.TongTien = ds.Tables[0].Rows[i]["TONG_TIEN"].ToString();
                donhang.NgayGiao = ds.Tables[0].Rows[i]["NGAY_GIAO"].ToString();
                donhang.ThanhToan = ds.Tables[0].Rows[i]["THANH_TOAN"].ToString();
                donhang.TrangThai = int.Parse(ds.Tables[0].Rows[i]["TRANG_THAI"].ToString());
                donhangcollection.Add(donhang);
            }
            TotalRecords = int.Parse(cm.Parameters["@TotalRecords"].Value.ToString());
            return donhangcollection;
        }
        #endregion
        #region Cập nhật trạng thái bảng dữ liệu
        public void DonHang_CapNhatTrangThai(DON_HANG dh)
        {
            SqlCommand cm = new SqlCommand("Update LOAI_SP SET TRANG_THAI = " + dh.TrangThai.ToString() + " WHERE MA_LOAI = " + dh.TrangThai, LayKetNoi());
            cm.ExecuteNonQuery();
        }
        #endregion        
    }
}
